home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BBS Toolkit
/
BBS Toolkit.iso
/
doors_2
/
tridv220.zip
/
TRIDOOR.DOC
< prev
next >
Wrap
Text File
|
1992-02-18
|
46KB
|
1,217 lines
T R I U M P H S O F T W A R E
Presents
░██████████ ░██ ░███████
░█ ░██ ░█ ░██ ░██
░██ ░█░██ ░██ ░██ ░██ ░███ ░███ ░█░██
░██ ░█ ░█ ░█ ░██ ░██ ░█ ░█ ░█ ░█ ░█ ░█
░████ ░██ ░███ ░███████ ░███ ░███ ░██
An On-Line Door Support Unit
For use with Turbo Pascal 5.5 and 6.0
TriDoor Written by Christopher M. Russo
TriComm Communications Support Written by Jeremy H. DuBois
TriDoor, TriComm (c)1992 Triumph Software, All Rights Reserved.
QuickBBS is a Registered Trademark of the QuickBBS Group.
Turbo Pascal is a Registered Trademark of Borland, Inc.
Triumph Software is not affiliated in any way with
either The QuickBBS Group or Borland, Inc.
Triumph Software - TriDoor Documentation pg. i
DISCLAIMER
Triumph Software and the employees/programmers in conjunction with
and/or affiliated with Triumph Software can not be held responsible
for the condition of any software received through any non-postal/
non-parcel means.
Nor can said persons be held responsible for any damage caused to
media or hardware as a result of the use of any of our products.
Triumph Software and it's employees and associates would like it to
be known, however, that all of their products are thoroughly tested
before leaving our offices. It is only in the deepest faith in our
own product that any such software is released to the public.
Triumph Software reserves the right to change any documentation,
disclaimer, licensing information or registration procedures and costs
at any time for any reason with no prior warning or notice.
Triumph Software - TriDoor Documentation pg. ii
LIMITED LICENSING AGREEMENT
The holder of the unregistered TriDoor package is allowed a limited
usage period of 30 (thirty) days, wherein he or she may incorporate
the unit in any program that he or she develops as long as the program
incorporating the TriDoor unit is not distributed in any manner at any
time. After the thirty day period, the holder of the unregistered copy
of the TriDoor package must register the software to be allowed further
use of TriDoor.
A private registered copy may be obtained by filling out the TriDoor
registration form and sending both the registration form and $30.00, in
the form of a check or money order, to Triumph Software. The private
copy will allow the registered owner to produce programs using the
TriDoor unit and distribute them as long as the registered copy of
TriDoor is not included in the the package, no compensation is
obtained in any way from the distribution of the software incorporating
the TriDoor unit, and Triumph Software is given ample credit as depicted
in the final chapter of this document. The registered copy of the
TriDoor unit must not be distributed in any way other than as a compiled
portion of a program or software produced by the registered copy holder.
A commercial registered copy may be obtained by filling out the
TriDoor registration form and sending both the registration form and
$100.00, in the form of check or money order, to Triumph Software. The
commercial copy will allow the registered owner to produce programs
using the TriDoor unit and distribute them. This copy also allows the
holder of the registered copy to obtain legal compensation for the
program incorporating the TriDoor package. The holder of the commercial
registered copy must include acceptable credit in the documentation
of his or her program as further explained in the final chapter of
this document. The registered copy of the TriDoor unit must not be
distributed in any way other than as a compiled portion of a program or
software produced by the registered copy holder.
An individual copy must be registered for each individual company and
person. The only exception is in the case of a company owned by a
person in which case the copy may be registered for both in the case of
a commercial copy.
Triumph Software reserves the right to revoke registration priviliges
either temporarily or permanently if the conditions of the registration
are not properly met by the holder of the registered TriDoor package.
Triumph Software reserves the right to use the registered owners name,
company and/or product created incorporating the TriDoor unit in any of
Triumph Software's advertising of any type.
Registered copy holders will be entitled to minor upgrades of the
TriDoor package at a minimal processing and materials fee of $5.00 per
upgrade. Major upgrades can be obtained at a cost of $12.00 for private
copies and $24.00 for commercial copies.
Triumph Software - TriDoor Documentation pg. iii
TABLE OF CONTENTS
Why Use Tridoor?. . . . . . . . . . . . . . . . . . . . . . . . .001
Features of TriDoor . . . . . . . . . . . . . . . . . . . . . . .002
What's New This Version . . . . . . . . . . . . . . . . . . . . .003
Command Summary . . . . . . . . . . . . . . . . . . . . . . . . .004
Accessible Variables. . . . . . . . . . . . . . . . . . . . . . .010
Incoporating Support for Other BBS Software . . . . . . . . . . .011
Programming With TriDoor. . . . . . . . . . . . . . . . . . . . .013
Reserved Words. . . . . . . . . . . . . . . . . . . . . . . . . .014
Tested Limits of TriDoor. . . . . . . . . . . . . . . . . . . . .015
Programming Hint(s) . . . . . . . . . . . . . . . . . . . . . . .016
Things to Come ("The Workbench"). . . . . . . . . . . . . . . . .017
Who to Contact. . . . . . . . . . . . . . . . . . . . . . . . . .018
History of TriDoor. . . . . . . . . . . . . . . . . . . . . . . .019
Other Products by Triumph Software. . . . . . . . . . . . . . . .020
A Comment on Quality. . . . . . . . . . . . . . . . . . . . . . .021
Acceptable Credit in Programs and Documentation . . . . . . . . .022
Triumph Software - TriDoor Documentation pg. 001
WHY USE TRIDOOR?
The TriDoor communications package provides the programmer with a list
of many commands and features that I have found extremely useful, if not
invaluable while writing various on-line doors for both my BBS and
others.
No longer is the value of any door program you write hinging upon your
abilities to write the communications drivers and commands to support
them! Now, with communications equivalents of standard Pascal commands,
such as print() which almost mirrors Turbo Pascal's write() and
writeln(), you can sit at your terminal and write any program for a BBS
in the same amount of time and with the same amount of effort it would
take to write one for local usage!
The possibilities are endless- I have written on-line games, archive
viewing utilities, text/ansi file viewers, "top-ten" user-list creators
and many more.
How many times have you said to yourself, "Wow, this is a great system
I have here, if only I could add..." One solution: you can go out and
download programs to do some of the things you need to do; but none of
them are ever exactly what you want, and you have to pay all those
shareware fees. What do you do about all the things that you couldn't
find anywhere? Hire an expensive programmer?
I frequently find myself saying "If you can't do it with TriDoor, YOU
CAN'T DO IT!" It is the easiest way to create a door. This is the
best software package available of this kind. It's easy, quick, and
powerful and you hold the power to make the doors and on-line games
that you have always wanted!
Triumph Software - TriDoor Documentation pg. 002
FEATURES OF TRIDOOR
TriDoor has many advanced, easy to use features and I intend to add
more. Any additional features will be tacked on to the actual program
commands explanations with their appropriate version numbers.
* Automatic set-up and support of communications ports.
* Automatic reading and processing of the file DORINFO1.DEF.
* Easy to use commands such as PRINT and GETINPUT which will
print to the local screen, and the comport if a carrier is
detected.
* Built-in chat mode with word-wrap and highlighted user-
entered text on the local screen.
* Boolean variable QUIT which is set to TRUE if ALT-H is
hit from the local keyboard- allows for programmer-defined
or non-existent "hang-up" procedures.
* Easy "caps-lock", and "password-entry" (see "***" instead of
"hey") modes.
* Length restriction on input fields.
* Built-in string capitalization and easy integer/longint to
string conversion.
* Built-in direct screen write functions.
* Automatic status bar displaying time, name and baud rate.
* Automatic handling of user's time.
* Built-in routines for clearing user's and local screen.
* Built-in boolean response "Are you sure?" function.
* Built-in User-Pager.
* Automatic, disablable "Last Printed" Memory.
* Help Status Bar on Local Screen.
* Auto-sensing of color/monochrome mode.
* Turbo Pascal 5.5 AND 6.0 support.
* ANSI Support.
* Ability to change User time
* Auto-hangup (QUIT := TRUE) at time<1 (can be disabled).
* System messages in status bar.
* Ability to add support for ANY BBS System
* Ability to be run in multi-tasking environments such as
DESQVIEW and WINDOWS.
* Automatic ANSI filter on outgoing text.
* Local disable/enable of remote user keyboard.
* Fake line-noise
* Ability to use non-standard IRQ/COMM port configurations
* Ability to change all communications parameters
Triumph Software - TriDoor Documentation pg. 003
WHAT'S NEW THIS VERSION
* You may now use non-standard COMM port/IRQ settings. In order
to do this, all you need do is fill in the appropriate variables
which have been added to the <stat> record before running the
setuptri() function. Note that readquick() will do this
automatically.
For further discussion on this topic please see the chapters
entitled INCORPORATING SUPPORT FOR OTHER BBS SOFTWARE and
ACCESSABLE VARIABLES.
* The readquick() procedure will automatically determine
parity, stop bits and data bits.
Triumph Software - TriDoor Documentation pg. 004
COMMAND SUMMARY
* NOTE : All accessable variables will be discussed in more detail in
the Accessable Varibles portion of this document.
All commands marked with a signle * (asterix) are automatically
executed in the setuptri procedure or is automatically handled
by TriDoor under normal operating conditions.
<01> function offline : boolean;
This function will return a TRUE if there is no user "on-line".
This function automatically accounts for local users.
<02> procedure recordtimeon; *
This procedure records the time that the user enters the door.
<03> function timeleft : integer;
The timeleft function will check the user's time left in the
door. If the boolean variable AUTOHANG is set to TRUE and the
user's time runs out, the boolean QUIT variable will also be
set to TRUE.
<04> procedure puttime;
This procedure will put the user's time left in the lower
righthand area of the screen as long as the boolean TIMEOFF
variable is set to false.
<05> function strg( i : integer ) : string;
This function will return the string of any integer.
<06> function bstrg( li : longint ) : string;
This function is the same as the strg() function except that it
will accept long integers as well.
<07> function ucase( strg : string ) : string;
This function will return the string given it in capital
letters.
<08> procedure dwrite( outchr : char; attr : integer );
The dwrite() procedure will write the character outchr directly
to screen memory at position scrnpos.
Triumph Software - TriDoor Documentation pg. 005
<09> procedure gotopos( x,y : integer );
The gotopos() procedure will set the variable SCRENPOS in
accordance to the standard x,y position.
<10> procedure dstr( outstr : string; attr : integer );
This procedure writes a string to screen memory at the position
of SCRENPOS.
<11> procedure statusbar; *
The statusbar() procedure will print a bar at the bottom of the
local screen with with the user 's name , time left and baud
rate. This is also where the variable PROGRAMNAME will be
displayed.
<12> procedure sysmessage( strng : string );
The sysmessage() procedure will print a message (strng) in the
statusbar on the local screen.
<13> function readquick : boolean;
This function will read the necessary door operation
information from the door support file DORINFO1.DEF. TriDoor
MUST get it's essential information from a door support file in
order to be able to operate properly. This will also return a
TRUE if the file was successfully read.
<14> function topcaps( strg : string ) : string;
This function will return a string with the first letter of
word capitalized and all other letters in lower-case.
<15> procedure clearcom;
This function will clear the local screen and the remote screen
if a user is online.
<16> procedure angotoxy( x, y : integer );
This is the ANSI equivalent of the Pascal procedure gotoxy().
If ANSI is disabled, this function will NOT work.
<17> procedure anleft( ls : integer );
This is an ANSI procedure that will move left the number of
spaces specified in the variable ls.
Triumph Software - TriDoor Documentation pg. 006
<18> procedure anright( rs : integer );
This is identical to anleft() except that it goes right instead
of left.
<19> procedure anup( us : integer );
This procedure is similar to anleft() and anright() except that
it goes up the number of spaces passed as the variable us.
<20> procedure andown( ds : integer );
This procedure is identical to anup() except that it goes down
instead of up.
<21> procedure aneraseln;
This is the ANSI procedure to erase an entire line in the
current ANSI color as set by ancolor().
<22> procedure anclear;
The anclear() procedure is the ANSI equivalent of clearing the
screen. Like all ANSI functions and procedures, this does not
function if ANSI is disabled.
<23> procedure ancolor( bl, br, fg, bg : integer );
This function will set the ANSI color. The following constants
have been provided for easy access :
bl : BLINK
br : INTENSITY
fg/bg : BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA,
CYAN, WHITE
The following are some examples :
ancolor(0,0,WHITE,BLACK) white/black background
ancolor(BLINK,0,CYAN,BLACK) blinking cyan/black background
ancolor(0,INTENSITY,WHITE,BLACK) bright white/black background
<24> function getkey : char;
This function will wait for a key to be pressed either locally,
or over the communications port if a carrier is present.
<25> function comwait : boolean;
This will tell you if there is a character waiting in the
input buffer of the communications port waiting to be read.
Triumph Software - TriDoor Documentation pg. 007
<26> function getinput( wrdsize : word ) : string;
The getinput() function is similar to getkey() except that
this function allows for a string to be entered. The
following variables also apply :
CAPS := TRUE/FALSE -- will convert all typed to
uppercase if TRUE.
CODE := TRUE/FALSE -- will show all characters
typed as *'s if TRUE.
wrdsize := (1-255) -- maximum characters accepted
as input.
<27> function readphone : string;
This function reads and returns a phone number in the format of
(###)###-####.
<28> function readdate : string;
This function reads amd returns a date in the format XX/XX/XX.
<29> procedure printchar( ch : char );
The printchar() procedure will print a character to the local
screen and the comport if a carrier is detected. There is no
calculated delay between characters in this function as there
is in the print() procedure.
<30> procedure print( strng : string );
The print() procedure will print a string to the local screen,
as well as to the communications port if a carrier is detected.
To create a carriage return, simply plug in a || anywhere in
the string to be printed.
For example...
print('My name is george.||Who are you?||||BLAH! ');
would print...
My name is george.
Who are you?
BLAH! ( <-- cursor would remain here! )
Triumph Software - TriDoor Documentation pg. 008
NOTE : When plugging variables, substitute +'s where you would
normally place ,'s in a write()/writeln().
For example...
print('My name is '+mynamevar+'.||');
When printing Numerical Variables, use the STRG function to
convert them to a string format.
For example...
print('My age is '+STRG(age)+'.||);
Also note that as of V1.26 there is a boolean variable called
queueoff. If this variable is set to false, the print()
command will always remember the last thing printed. (Comes
in handy when exiting chat-modes and so-forth.)
The variable that the last thing printed is stored in is
queueone. (a string)
<31> procedure comprint( strng : string );
The comprint() procedure is identical to print, except that
it prints SOLELY to the communications port and that it does
not have a queue like print does.
<32> function setuptri : boolean;
This function MUST be run in order for TriDoor to operate
properly. It is to be placed in your program's code right
after the reading of the chosen door support files. setuptri()
will return a FALSE if it fails to set up the communications
port with the values currently in the STAT record.
<33> function aysure( s : string; [Yes/No] ) : boolean;
The aysure() function will print the string s accompanied by a
'? (Y/[N])' and return a boolean TRUE or FALSE depending on a
choice of yes or no respectively.
The Yes/No is to specify which choice you would like to have as
the default setting for if the user hits RETURN.
An example of this is as follows-
if aysure('Proceed to next procedure',Yes) then gonext;
Triumph Software - TriDoor Documentation pg. 009
<33> procedure showfile( fname : string; len : word );
The showfile() function will display a file to both the user
on-line (if present) and to the local screen. The len variable
is the number of lines of the file that should be printed
before a 'More? ([Y]/N)' appears.
Triumph Software - TriDoor Documentation pg. 010
ACCESSIBLE VARIABLES
Here is a list of accessible variables and their descriptions. You
may work with these as you like at any time during program operation.
statrec = { RECORD OF ON-LINE USER STATISTICS }
record
name : string[50]; { name of user on-line }
baud, { baud rate }
time : word; { time user has left }
comstr : string[20]; { comstring in the format 1200,N,8,1 }
comport : integer; { comport- COM1,COM2, etc... }
comp_interrupt, { assignable comport IRQ }
comp_dbits, { assignable data bits }
comp_sbits, { assignable stop bits }
comp_parity : integer; { assignable parity }
ansi : boolean; { ANSI codes enabled if TRUE }
end;
The above record is necessary to support the various bulletin board
systems. This will be further explained in the next section.
var
stats : statrec; record of starec
local, local if true
code, "***" at getinput() if true
quit, set to true at ALT-H and timeout
caps, caps at getinput() if true
queueoff, turn off print queue if true
timeoff, display time in status bar if false
ansi, ANSI active if true
autohang : boolean; sets quit to true at time<1 if true
mainpath, path to DORINFO1.DEF (default=current)
queueone : string; queue store for print queue
programname : string[80]; name of program (shown in status bar)
Triumph Software - TriDoor Documentation pg. 011
INCORPORATING SUPPORT FOR OTHER BBS SOFTWARE
Due to the variety of bulletin board systems available today we
have made TriDoor easily adaptable for any system. The variables in the
record STAT which is of the type STATREC must be filled in with the
data from the door support file which you are reading. The following
is an example of how TriDoor reads this data from the file DORINFO1.DEF
which is created by QuickBBS and it's clones.
{* * * * * * * * *}
function readquick : boolean;
{ reads a users stats from the file DORINFO1.DEF and returns
false if there was an error. }
var
deffile : text;
i,
loop,
loop2 : integer;
comst,
filler : string;
work1,
work2 : string[40];
begin
if fsearch(mainpath+'DORINFO1.DEF','') <> '' then
begin
assign(deffile,mainpath+'DORINFO1.DEF');
reset(deffile);
for loop := 1 to 4 do
readln(deffile,filler);
case filler[4] of
'0' : stats.comport := 0;
'1' : stats.comport := COM1;
'2' : stats.comport := COM2;
'3' : stats.comport := COM3;
'4' : stats.comport := COM4;
end;
readln(deffile,stats.comstr);
readln(deffile,filler);
readln(deffile,work1);
readln(deffile,work2);
readln(deffile,filler);
readln(deffile,i);
readln(deffile,filler);
readln(deffile,stats.time);
close(deffile);
Triumph Software - TriDoor Documentation pg. 012
stats.name := work1 + ' ' + work2;
work1 := '';
loop2 := 0;
loop := length(stats.comstr);
while (loop2<loop) and (ord(stats.comstr[loop2+1]) <> 32) do
begin
loop2 := loop2 + 1;
work1 := work1 + stats.comstr[loop2];
end;
val(work1,stats.baud,loop);
if i = 1 then stats.ansi := TRUE
else stats.ansi := FALSE;
i := pos('BAUD',stats.comstr);
i := i + 5;
work1 := copy(stats.comstr,i,1);
case work1[1] of
'N' : stats.comp_parity := NONE;
'E' : stats.comp_parity := EVEN;
'O' : stats.comp_parity := ODD;
'M' : stats.comp_parity := MARK;
'S' : stats.comp_parity := SPACE;
end;
val(copy(stats.comstr,i + 3,1),loop,loop2);
stats.comp_dbits := loop;
val(copy(stats.comstr,i + 5,1),loop,loop2);
stats.comp_sbits := loop;
readquick := true;
end
else
readquick := false;
end;
{* * * * * * * * *}
Once either this or your customized function has been executed and,
the all of the <stats> record variables have been filled in all your
program needs to do is execute the setuptri() function. Once this is
done your system should be fully configured and ready to begin efficient
communications.
PLEASE NOTE that if you are using non-standard IRQ settings that you
will need to enter the IRQ value into the <stats> BEFORE running
setuptri(). Remember that TriDoor has IRQ2-IRQ4 as global constants for
your convenience.
Please note that if your BBS software is not supported and you write
a procedure to handle it that we will put it in future versions of
TriDoor if you send it to us.
Triumph Software - TriDoor Documentation pg. 013
PROGRAMMING WITH TRIDOOR
Creating doors with TriDoor is an astoundingly simple process but a
couple steps must be taken in each program you write in order for the
program to function normally. The computer may physically "hang" if
these few following procedures are not completed (but will usually just
drop out with a complaint about not being able to set-up properly.)
First of all you must fill in the STAT record with the appropriate
data either using procedures already incorporated in TriDoor or with a
procedure or function of your own. The STAT record is shown in the
"Accessable Variables" chapter with it's record type, STATREC.
If your BBS is not currently supported by TriDoor then you need to
create your own support file which is explained in the previous
chapter, "Incorporating Support for Other BBS Software".
Then you must call on the setuptri() procedure which will set up
the communications port and initialize the system for door support.
After these two or three things have been completed you may proceed
with using any of TriDoor's commands and features to write your door.
Remember that due to the nature of Turbo Pascal's units, any TriDoor
function or procedure that you do not use will not be built into your
software. This is good for two reasons- one is that memory will not
be used unecessarily and the other is that you may create substuitutions
for TriDoor commands that you would prefer to write yourself.
Triumph Software - TriDoor Documentation pg. 014
RESERVED WORDS
The following list of words are reserved (used by TriDoor) and not to
be re-defined by any program incorporating TriDoor as a conflict will
arise that will result in non-functionality, to some degree, of the
final resultant program/software.
tridr55? tridr60? buffptr buffrec
statrec stats scrnpos logontime
comintvec screnmode local code
quit caps queueoff buffertop
head tail oldint exitsave
programname tdver tddate CR
BS BLACK RED GREEN
YELLOW BLUE MAGENTA CYAN
WHITE INTENSITY BLINK IER
IIR LCR MCR LSR
MSR RLS RDA TRE
MSI PIC EOI PICMASK
ENABLE1 ENABLE2 DISABLE1 DISABLE2
BIOSSEG KEYHEAD KEYTAIL EVEN
ODD NONE COM1 COM2
COM3 COM4 IRQ2 IRQ3
IRQ4 offline recordtimeon timeleft
puttime strg bstrg ucase
dwrite gotopos dstr statusbar
sysmessage readquick clearcom angotoxy
anleft anright anup andown
aneraseln anclear ancolor getkey
comwait getinput readphone readdate
printchar print comprint checkkey
setuptri aysure Yes No
Triumph Software - TriDoor Documentation pg. 015
TESTED LIMITS OF TRIDOOR
TriDoor has been run and tested, successfully, on a variety of systems
ranging from a 4.77MHz IBM XT with a 2400 baud modem to a 33MHz 386 with
a 9600 baud HST modem. As far as we know, if your system is fast enough
to handle your modem, this unit will function without a hitch.
There are a few limitations, however, that we are aware of at this
time. The constraints are as follows :
*** There are currently no limits on TriDoor that we know of ***
Those are all of them as far as we are aware. If you find any new
problems, please contact us immediately.
Triumph Software - TriDoor Documentation pg. 016
PROGRAMMING HINT(S)
Here are a few ideas to get you going. TriDoor is written very
flexibly to allow for you to do essentially as you like with the commands
However, due to this flexibility, some things may seem confusing, or
just not occur to you right away. Over time, as I think of these things,
I will place them in this area, and feel free to send us any hints that
you've discovered while programming with TriDoor.
* REMEMBER to put online and quit checks in all of your while
loops and repeat untils and so on. If you do not put these in
and you hit ALT-H or the user drops carrier then your program
will hang!
* Program all of your door support file reading functions with a
boolean return. This not only allows you to know if it was
successful but will also allow you to program a procedure that
automatically reads whatever door support file is available.
* Do you want the SysOp to see something that the user will not?
Simply use a writeln() instead of print(). Or in newer
versions of TriDoor, use the sysmessage() command. It is
always good to make it obvious to the SysOp that the user is
not seeing that text, though! A standard way of doing this is
by using a small block (ASCII 254) before the text and high-
lighting it.
* Try not to exclude non-ANSI users from your door. It's a sign
of a lazy/unthinking programmer. Better than 35% of BBS users
DO NOT have ANSI capabilities- don not limit yourself and your
program!
* Remember that many bulletin board systems run better if they
stay in memory while dropping to dos to run a door, and many
systems do not have more than 640k-1 meg of RAM. If your
program requires more, try to break it up into pieces to run
more efficiently. If you have an update program that needs
to be run but once per day, make it a separate one.
Triumph Software - TriDoor Documentation pg. 017
THINGS TO COME ("THE WORKBENCH")
The following is a list of some of the things that are most likely
going to be added in future versions of this software. Or they are
things that we are, at the very least, seriously considering. This is
a far from complete list, but it gives you an idea of what we are up to.
If you have any further ideas or suggestions, please contact us and tell
us what you think.
* Support for other BBS software such as PCBoard
(If you have a system you would like supported, send us
the appropriate file and information so we may add it.)
Triumph Software - TriDoor Documentation pg. 018
WHO TO CONTACT
Did your machine swear in protest at our software? Are you missing
files that should be included in this release? Do you have any
questions you would like to ask us? Do you have any comments or
suggestions?
Well, then- you may get in contact with us at any of the following
places/numbers :
Christopher M. Russo Voice : (508)263-8420
Jeremy H. DuBois Voice : (508)263-7004
Triumph BBS TEMPORARILY OFF-LINE
PLEASE CALL VOICE
Remember that those voice phones are our HOME phones as we do not
yet have a business line- please refrain from hassling the other people
that live there- NONE of us will answer "Hello, Triumph Software." We
will tell you when we get the business line.
We are also looking out for potential support boards and beta-testing
systems, so if you have a system and are interested, make sure you
inform us of your desire and eligibility.
Triumph Software - TriDoor Documentation pg. 019
HISTORY OF TRIDOOR
TriDoor and it's communications support is the end result of almost
four years of effort by both Jeremy DuBois and myself. (Christopher
M. Russo) We started one rainy day when Jeremy had informed me that
he had managed to write some basic polling Pascal communications
routines. As Jeremy already had a bulletin board system running at
that time, I suggested that we write an on-line game for it.
And that is when it all began. We went from writing a semi-complete
and not-too-awful on-line game to writing DoorBase, our first version
of an on-line door supporting unit. Then I wrote a game on my own-
Monopolistic Competition, followed shortly thereafter by Monopolistic
Competition II which was running off of a newer, but still bedraggled
version of DoorBase.
Then one day while trying to write a terminal program, we realized
that the communications routines that Jeremy had made were simply not
fast enough to handle all the tasking necessary, and at anything
above 2400 baud, was a miserable failure. Thus, Jeremy set out once
again to create newer, faster, interrupt driven routines.
I had quite a lot of trouble dealing with the newer routines for
reasons which, I admit, are beyond my knowledge. After time and
perseverance, however, I mastered the new routines and re-wrote the
newest version of DoorBase, now called TriDoor in the interest of our
newly-founded company.
And thus, I present to you said software and complete documentation
for the easy usage and incorporation of communication and door support
in your Pascal programs for QuickBBS and clones. I strongly believe that
using TriDoor is the easiest, most user-friendly way of writing doors
and on-line games available today.
Finally, before we commence, I would like to take a moment to thank
Jeremy for all his help and patience with my quirky little habits and
programming nit-picks. I have never given another teacher more of a
hard time than I gave him. Ridiculous as this may sound, he is an
inspiration to me, and I thank him for all he's taught me and all he
will, undoubtedly, teach me in the future.
Triumph Software - TriDoor Documentation pg. 020
OTHER PRODUCTS BY TRIUMPH SOFTWARE
The following products are also available from Triumph Software.
For more information on these products or specific consulting services,
please contact us.
TriComm . . . . . . . . . . . . . . . . . . . .Registered : $30
TriComm is the original communications unit compiled for
Turbo Pascal 5.5 and used in the creation of TriDoor. It
currently supports COM1 and COM2 and runs at all baud
rates. (Has been tested up to and over 9600 baud)
TriUser . . . . . . . . . . . . . . . . . . . .Registered : $25
TriUser is an on-line QuickBBS user editor written using
the TriDoor on-Line door support unit. It also takes
advantage of TriDoor's ANSI support features.
WorldFix. . . . . . . . . . . . . . . . . . . . . . . . $200.00
WorldFix is a utility for the Real World Accounting
software package that will close data files in a matter
of seconds as opposed to the minutes and hours that it
takes Real World to do the same job. Triumph Software
and Real World are not aphilliated in any way.
Qstat . . . . . . . . . . . . . . . . . . . . .Registered : $20
Qstat is a QuickBBS download counter that will keep
track of downloads in the FILES.BBS files. Among it's
many nice features are a limit of 999 downloads per file
before returning to 0, (Most such programs only allow 99)
a nice interface and display and an error log.
Triumph Software - TriDoor Documentation pg. 021
A COMMENT ON QUALITY
To finalize, I would like to take a moment to voice my thoughts on
quality in programs and programming.
I have spent over eight years working on and with bulletin board
systems, an equal amount of time programming both at an amateur and
a professional level, and three years or more programming for bulletin
board systems.
In that time I have seen many doors and many bulletin board systems,
and I have noticed so many sloppy doors and on-line games that if I had
a computer for every one I have ever seen, I would be able to put them
together and form a top-of-the-line Sun SPARCStation with tint-control,
a built-in microwave and a television.
I can't tell you how many times I have run a program and then been
asked, infuriatingly, "Cannot find BRUNxx.EXE. New Path?" or found
that a program would literally crash inside of two minutes of operation
on any machine that I could try it on.
And all the programs that I saw grinding away at the disk-drive as
they either accessed a massive load of disorganized data or simply were
running in the slowest possible languages and needed three days to load
360k of marginally organized data.
Then there were the programs that simply crashed without a peep, or
crashed and threw some sickening statement like "KILLROY DEATH NOTICE
#093284AF84UAREDEAD" at you as you sat in bewilderment.
I am the pickiest person on earth when it comes to programming, so
you can be assured that any product that you ever get from Triumph
Software has been brutally criticized and abused to make sure it is
doing everything it should be doing, doing it well, and then some.
If I missed something, I will be ever amazed, but I assure you that
I literally don't sleep until the problem is fixed.
I hope you enjoy this and all of our programs and find them easy to
use and well-written. If you have suggestions or complaints, please
contact us/me as we/I are/am always happy to hear them and try to
incorporate them.
Happy Programming!
-Christopher M. Russo
Triumph Software - TriDoor Documentation pg. 022
ACCEPTABLE CREDIT IN PROGRAMS AND DOCUMENTATION
On the title-page of your documentation where your program name
appears, or if you do not have such a page, wherever your "credits"
are (Written by... ) you should include the following :
TriDoor Communications and On-line Door Driver
Written by Christopher M. Russo and Jeremy H. DuBois
(c)1992 Triumph Software, All Rights Reserved.
(508)263-7004 / (508)263-8420
The above listed credit lines MUST be placed within the first 3
(three) pages of your documentation to be considered as acceptable
credit. A disclaimer must also be in the documentation stating that
Triumph Software is not affiliated with you or your company in any way
and that Triumph Software can not be held responsible for any programs
created using the TriDoor package.
If no documentation is included in the package that you have produced,
then a file giving Triumph Software credit for TriDoor must be included
in the package. This credit must also include the disclaimer as noted
in the previous paragraph.
Triumph Software reserves the right to temporarily revoke registration
privelleges until proper credit for Triumph Software is given in any
software/programs created using the TriDoor unit.
The following lines will AUTOMATICALLY appear VERY BRIEFLY upon bootup
of any program using a registered copy of TriDoor :
TriDoor Vx.xx - On-line Door and Communications Support
(c)1992 by Triumph Software, All Rights Reserved.
Reg No : xxxxxxxxxx Reg To : John Q. Programmer
A special copy of the package without this notice may be obtained by
special arrangements with Triumph Software. Different licensing
agreements and disclaimers may apply.
Removal of this notice or any of it's information without prior and
valid written approval by Triumph Software voids the registration of
the TriDoor package.